package edu.hawaii.halealohacli.command;

import org.wattdepot.client.WattDepotClient;

/**
 * Sets up the requirements for a command class.
 * 
 * @author Group BackR
 * 
 */
interface Command {

  /**
   * Runs the class and returns data needed in a String.
   * 
   * @param input The user input.
   * @param client The WattDepotClient server connected to.
   * @return data
   * @throws Exception 
   */
  public String run(String[] input, WattDepotClient client) throws Exception;

  /**
   * Returns the command value of this class when access through the command line.
   * 
   * @return command
   */
  public String getCommand();
  
  /**
   * Returns number of parameters the command takes.
   * 
   * @return numParams
   */
  public int getNumParams();

  /**
   * Returns the help dialogue when accessing help from the command line.
   * 
   * @return help
   */
  public String getHelp();

}
